#ifndef I_AI_SERVICE_H
#define I_AI_SERVICE_H

#include <vector>
#include <string>

#include "iremote_broker.h"
#include "ai_service_data_type.h"

namespace OHOS {
namespace AIS {
class IAIService : public IRemoteBroker {
public:
    IAIService() = default;

    virtual ~IAIService() = default;
    
    virtual int32_t Init(std::string& modelPath, int32_t* modelId) = 0;

    virtual int32_t Process(const int32_t modelId, PicDesc& picDesc, std::string& picData, InferResult& result) = 0; 

    virtual int32_t DeInit() = 0;

    enum {
        INIT = 0,
        PROCESS = 1,
        DEINIT = 2
    };

    DECLARE_INTERFACE_DESCRIPTOR(u"IAIService");
};
}  // namespace AIS    
}  // namespace OHOS

#endif // I_AI_SERVICE_H